﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Design;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Audio;
using _XNA__RunningDeath.GLO;

namespace _XNA__RunningDeath.DTO
{
    class CNhanVat_DTO
    {
        protected string _name;                          // Tên Nhân Vật
        protected int _life;                             // Số Mạng Sống
        protected int _score;                            // Điểm Số
        protected int _speed;                            // Tốc Độ
        protected Vector2 _pointCurent;                  // Ví trí nhân vật Hiện tại
        protected Vector2 _pointMax;                     // Vị trí cao nhất khi bay
        
        protected Dictionary<string, Rectangle> _dspointrun;  // danh sách tọa đọ nhân vật chạy
        protected Texture2D _texSkin;                         // hình nhân vật


        protected Texture2D _texleap;                         // hình nhân vật khi bay
        protected Texture2D _texdie;                          // hình nhân vật khi chay
        protected Texture2D _texpause;                          // hình nhân vật khi Nghỉ
        protected int _skinLengh;                             // số hình cần làm chuyển động nhân vật (bay/ chạy)

        protected enumState _trangthai;                       // Trạng thái của nhân vật (sống / chết / bay)
        protected int _frame;                                 // khung hình của nhân vật

        protected SpriteBatch _spriteBatch;
        protected GameTime _gametime;
        protected ContentManager _content;

        protected SoundEffect _songeffRun;                      // Am thanh chạy
        protected SoundEffect _songeffLeap;                     // Am thanh nhảy

        #region GET/SET
        public SoundEffect SongeffLeap
        {
            get { return _songeffLeap; }
            set { _songeffLeap = value; }
        }
        public SoundEffect SongeffRun
        {
            get { return _songeffRun; }
            set { _songeffRun = value; }
        }

        public Texture2D TexPause
        {
            get { return _texpause; }
            set { _texpause = value; }
        }
        public Texture2D TexSkin
        {
            get { return _texSkin; }
            set { _texSkin = value; }
        }
        public Texture2D Texleap
        {
            get { return _texleap; }
            set { _texleap = value; }
        }
        public Texture2D Texdie
        {
            get { return _texdie; }
            set { _texdie = value; }
        }

        public int SkinLengh
        {
            get { return _skinLengh; }
            set { _skinLengh = value; }
        }
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        public int Life
        {
            get { return _life; }
            set { _life = value; }
        }
        public int Score
        {
            get { return _score; }
            set { _score = value; }
        }
        public int Speed
        {
            get { return _speed; }
            set { _speed = value; }
        }
        public int Frame
        {
            get { return _frame; }
            set { _frame = value; }
        }

        public Vector2 PointCurent
        {
            get { return _pointCurent; }
            set { _pointCurent = value; }
        }
        public Vector2 PoinMax
        {
            get { return _pointMax; }
            set { _pointMax = value; }
        }

        public SpriteBatch SpriteBatch
        {
            get { return _spriteBatch; }
            set { _spriteBatch = value; }
        }
        public GameTime Gametime
        {
            get { return _gametime; }
            set { _gametime = value; }
        }
        public ContentManager Content
        {
            get { return _content; }
            set { _content = value; }
        }
        public Dictionary<string, Rectangle> DspointRun
        {
            get { return _dspointrun; }
            set { _dspointrun = value; }
        }
        public enumState Trangthai
        {
            get { return _trangthai; }
            set { _trangthai = value; }
        }
        #endregion

        public CNhanVat_DTO(ContentManager content, GameTime gameTime, SpriteBatch spriteBatch)
        {
            _content = content;
            _gametime = gameTime;
            _spriteBatch = spriteBatch;
        }

    }
}
